﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace ProyectoFinal
{
    public partial class Form8 : Form
    {
        DataSet Clientes;
        string rutaSQL = "Data Source=localhost;Initial Catalog=Isotopos;Integrated Security=True";
        bool cargoya = false;
        public Form8()
        {
            InitializeComponent();
            Clientes = new DataSet();
            llenar_cbApellidosNombre_clientes();
            cbClientes.SelectedIndex = 1; cbClientes.SelectedIndex = 0;
        }

        public void load_pagar(string DNICliente)
        {

            lbl_text_total.Text = "0 $";
            string QuerySQL = "Select (Sum(Monto)) as Total1  from ClientesDeuda where DniCliente=" + DNICliente + "";
            SqlConnection con = new SqlConnection(rutaSQL);
            SqlCommand cmd = new SqlCommand(QuerySQL);
            DataTable tabla = new DataTable();
            SqlDataAdapter AdaptadorTabla = new SqlDataAdapter(QuerySQL, con);
            
            AdaptadorTabla.Fill(tabla);// Llenamos la tabla con los datos leídos        
            
            lbl_text_total.Text = float.Parse(tabla.Rows[0]["Total1"].ToString()) + " $";
            
            if (lbl_text_total.Text == " $")
            {
                lbl_text_total.Text = tabla.Rows[0]["Total1"].ToString() + "0 $";
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void AgregarTablaDataSetSQLServer(string ConexionBD, string ConsultaSQL,
                          string NombreTabla, ref DataSet ds)
        {
            SqlConnection cn = new SqlConnection(ConexionBD);
            SqlDataAdapter adaptador = new SqlDataAdapter(ConsultaSQL, cn);
            cn.Open();
            adaptador.Fill(ds, NombreTabla);
        }

        private void llenar_cbApellidosNombre_clientes()
        {
            string ConsultaSQLApellidosNombre = "Select Cif_Nif_Dni,(Apellidos + \', \' + Nombre) as Name_Full FROM Clientes order by Apellidos";

            AgregarTablaDataSetSQLServer(rutaSQL, ConsultaSQLApellidosNombre, "Clientes", ref Clientes);

            cbClientes.DataSource = Clientes.Tables[0].DefaultView;
            cbClientes.ValueMember = "Cif_Nif_Dni";
            cbClientes.DisplayMember = "Name_Full";
        }

        public void  cargar_deuda(string DNICliente){
               try
            {
                //string consultaq = "Select * from ClientesVentas where DniCliente=" + DNICliente + "";
                //string consultaq = "Select FechaVenta, Total from ClientesVentas INNER JOIN Ventas on Ventas.IdVenta=ClientesVentas.IdVenta where DniCliente=" + DNICliente + "";
                string consultaq = "Select Monto, Fecha from ClientesDeuda where DniCliente=" + DNICliente + "";
                if (cargoya) Clientes.Tables["Ventas"].Clear();
                SqlConnection con = new SqlConnection(rutaSQL);
                SqlCommand cmd = new SqlCommand(consultaq, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(Clientes, "Ventas");
                datagrid_ventas.DataSource = Clientes.Tables["Ventas"];
                cargoya = true;
                load_pagar(DNICliente);

            }
            catch (Exception)
            {
                return;
            }

        }

        private void button44_Click(object sender, EventArgs e)
        {

        }

             private void cbClientes_SelectedIndexChanged(object sender, EventArgs e)
             {
                 if (cbClientes.SelectedIndex >= 0)
                 {
                     cargar_deuda(cbClientes.SelectedValue.ToString());
                 }
             }

             private void button1_Click(object sender, EventArgs e)
             {
                 tx_pago.Text = tx_pago.Text.Replace(",", ".");
                 string dt = DateTime.Now.ToString("yyyyMMdd"); 
                 string strc = "Insert Into ClientesDeuda (DniCliente,Monto,Fecha) VALUES ('" + cbClientes.SelectedValue.ToString() + "','-" + tx_pago.Text + "','" + dt + "')";
                 ejecutar_consulta(strc);
                 cargar_deuda(cbClientes.SelectedValue.ToString());
             }

             private void tx_pago_TextChanged(object sender, EventArgs e)
             {
                         bool textIsNumeric = true;

                            try 
                            {
                            float.Parse(tx_pago.Text);
                            }
                            catch
                            {
                            textIsNumeric = false;
                            }

                            if (!textIsNumeric)
                            {
                                MessageBox.Show("Ingrese solo numeros");
                                tx_pago.Text = "0";
                            }                      
             }

             public void ejecutar_consulta(string consulta)
             {
                 SqlConnection con2 = new SqlConnection(rutaSQL);
                 SqlCommand cmdInsert2 = con2.CreateCommand();
                 cmdInsert2.CommandText = consulta;
                 con2.Open();
                 cmdInsert2.ExecuteNonQuery();
                 con2.Close();

             }

             private void Form8_Load(object sender, EventArgs e)
             {

             }

             private void button3_Click(object sender, EventArgs e)
             {
                 Close();
             }

             private void datagrid_ventas_CellContentClick(object sender, DataGridViewCellEventArgs e)
             {

             }
    }
}
